package cn.lingyangwl.agile.infra.gen.service;

import cn.lingyangwl.agile.infra.gen.model.entity.TemplateConfig;
import cn.lingyangwl.agile.infra.gen.model.rqrs.CopyTemplateReq;
import cn.lingyangwl.agile.infra.gen.model.rqrs.TemplateConfigReq;
import cn.lingyangwl.agile.infra.gen.model.rqrs.TemplateConfigResp;
import cn.lingyangwl.agile.infra.gen.model.rqrs.TemplateQueryReq;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.List;

/**
 * @author shenguangyang
 */
public interface TemplateConfigService {
    List<TemplateConfig> listByIds(List<Long> idList);

    TemplateConfig getById(Long id);

    List<TemplateConfig> listAll();

    boolean save(TemplateConfigReq req);

    void updateById(TemplateConfigReq req);

    void deleteById(TemplateConfig templateConfig);

    List<TemplateConfigResp> listByGroupId(Long groupId);

    /**
     * 复制模板
     */
    void copyById(CopyTemplateReq req);

    IPage<TemplateConfig> page(TemplateQueryReq req);

    void deleteBatchByIds(List<Long> ids);

    List<TemplateConfig> list(TemplateQueryReq req);

    /**
     * 导入模板数据
     *
     * @param list 数据列表
     * @param updateSupport 是否更新支持，如果已存在，则进行更新数据
     * @return 结果
     */
    String importExcel(List<TemplateConfig> list, Long groupId, boolean updateSupport);

    List<TemplateConfig> listConfigByGroupId(Long groupId);
}
